// 1.基础使用
// class Person {
//   late String name = 'tom';
//   late int age = 10;
//   void printInfo() {
//     print("Name: $name, Age: $age");
//   }
// }

// void main() {
//   Person p1 = new Person();
//   print(p1.name);
//   p1.printInfo();
// }

// // 2.构造函数
// class Person {
//   late String name;
//   late int age;
//   // 定义参数类型
//   Person(String a, int b) {
//     this.name = a;
//     this.age = b;
//   }
//   void printInfo() {
//     print("Name: $name, Age: $age");
//   }
// }

// 2.1构造函数简写
// class Person {
//   late String name;
//   late int age;
// 构造函数简写
//   Person(this.name, this.age);
//   void printInfo() {
//     print("Name: $name, Age: $age");
//   }
// }

// void main() {
//   Person p1 = new Person('里斯', 10);
//   p1.printInfo();
//   Person p2 = new Person('张三', 20);
//   p2.printInfo();
// }

// // 3.命名构造函数
// class Person {
//   late String name;
//   late int age;
//   // 命名构造函数
//   Person.withName(this.name) {
//     this.age = 10;
//   }
//   // 命名构造函数
//   Person.withAge(this.age) {
//     this.name = 'tom';
//   }
//   void printInfo() {
//     print("Name: $name, Age: $age");
//   }
// }

// // 举例子 js  new Date().getTime()
// void main() {
//   Person p1 = new Person.withName('里斯');
//   p1.printInfo();
//   Person p2 = new Person.withAge(20);
//   p2.printInfo();
// }

// 4.引入模块化
// import './modelfile.dart';

// void main() {
//   var p1 = new Person.withName('tom1');
//   p1.printInfo();
//   var p2 = new Person.withAge(100);
//   p2.printInfo();
// }

// 5.私有化属性、方法：（1.要模块化，2.加_前缀）
// import './modelfile.dart';

// void main() {
//   Person1 p1 = new Person1('tom1', 45);
//   p1.printInfo();
//   print(p1.age);
//   print(p1._name); //报错
//   print(p1._printInfoss())//报错
//   p1.exec(); //共有方法可访问私有方法
// }

// 6.get、set 修饰符使用
// class Person {
//   late int width;
//   late int height;
//   Person(this.width, this.height);

//   get area {
//     return this.width * this.height;
//   }
// }

// class Person {
//   late int width;
//   late int height;
//   Person(this.width, this.height);
//   int area() {
//     return this.width * this.height;
//   }

// // 类似于vue的·计算属性
//   set areageight(val) {
//     this.height = val;
//   }
// }

// void main() {
//   Person p1 = new Person(10, 10);
//   p1.areageight = 20;
//   print(p1.area());
// }

// 7.初始化操作
// class Person {
//   late int width;
//   late int height;
//   Person()
//       : height = 10,
//         width = 10 {
//     print('初始化操作');
//   }
//   int area() {
//     return this.width * this.height;
//   }
// }

// void main() {
//   Person p1 = new Person();
//   print(p1.area());
// }

// 8.静态操作
class Person {
  static late String name = 'tom';
  static late int age = 10;

  static void printInfo() {
    print("Name: $name, Age: $age");
  }
}

void main() {
  print(Person.name);
  Person.printInfo();
}
